function animate(obj, target, callback) { 
    // 先清除之前的定时器，只保留当前的一个定时器执行
    callback(obj.timer);
    obj.timer = setInterval(function () {
        // 步长值写道定时器的里面
        // 把我们步长值改为整数 不要出现小数的问题
        var step = (target - obj.offsetLeft) / 10;
        step = step > 0 ? Math.ceil(step) : Math.floor(step);
        if (obj.offsetLeft == target) {
            // 停止动画 本质是停止定时器
            clearInterval(obj.timer);
            // 回调函数写到定时器结束里面
            if (callback) {
                callback();
            }
            // callback && callback();
        }
        window.scroll(0, window.pageYOffset + step);
    }, 30);
}